<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of precoeventocontrole
 *
 * @author leojssilva
 */
if (!isset($_SESSION)) {
    session_start();
}
include_once 'Precoevento.php';
include_once 'Precoatividade.php';
include_once 'Categoria.php';
include_once 'Tipo.php';

class PrecoeventoControle extends Controle {
    //put your code here
    var $msg = null;
    
    function index($evento_id) {
        $data['evento_id'] = $evento_id;
        if (isset ($_POST['nova']) || empty ($_POST)){
            $categoria = new Categoria();
            $tipo = new Tipo();
            $categoriaresult = $categoria->execute("sp_precoEventoListar", array(null, null));
            
            $this->set("categoria", $categoriaresult);
            $this->set("data",$data);
        }  elseif (isset ($_POST['edita'])) {
            $this->edit($this->data['data'], $evento_id);
        } elseif (isset ($_POST['exclui'])) {
            $this->excluir($this->data['data'],$evento_id);
            $this->redirect($this->here."/evento/edit/$evento_id");
        }
    }
    
    function edit($date, $evento_id, $precoresult=null) {
        $preco = new Precoevento();
        $date =  implode('-',array_reverse(explode('/', $date)));
        
        if (is_null($precoresult)){
            $precoresult = $preco->execute("sp_precoEventoListar", array($date, $evento_id));
        }
        //print_r($precoresult);
//        $precoresult = $preco->find2(array('conditions' => array('dataFim =' => $date, 
//                                                                    'evento_id =' => $evento_id), 
//                                                    'join' => array('categoria'),
//                                                    'fields' => array('precoevento.id as pe_id', 
//                                                        'dataFim', 'valor','nome', 'evento_id', 
//                                                            'categoria.id as id')));
        
        $data['dataFim'] = $date;
        $data['evento_id'] = $evento_id;
        $this->set("categoria", $precoresult);
        $this->set("data",$data);
        
        $this->render('index');
    }
    
    function salvar() {
        $preco = new Precoevento();
        $data =  implode('-',array_reverse(explode('/', $this->data['dataFim'])));

        $dadosSalvo = array_merge($this->data['preco'], array());

        if (isset($this->data['exclui']['preco'])){
            foreach ($this->data['exclui']['preco'] as $value) {
                $atividade = new Precoatividade();
                $atividade->delete(array('precoevento_id =' => $this->data['preco'][$value]['id']));
                $preco->delete($this->data['preco'][$value]['id']);
                unset ($this->data['preco'][$value]);
            }
        }
        
        if (isset ($this->data['exclui']['precoatividade'])){
            foreach ($this->data['exclui']['precoatividade'] as $value) {
                
                $valores = explode(",", $value);
                $precoevento_index = $valores[0];
                $precoatividade_index = $valores[1];
                if (isset($this->data['preco'][$precoevento_index])){
                    $atividade = new Precoatividade();
                    $atividade->delete( 
                        $this->data['preco'][$precoevento_index]['precoatividade'][$precoatividade_index]['id']);

                    unset($this->data['preco'][$precoevento_index]['precoatividade'][$precoatividade_index]);
                }
            }
        }

        foreach ($this->data['preco'] as $key => $value) {
            $this->data['preco'][$key]['dataFim'] = $data;

        }
        
        $error = null;
        if ($preco->saveAll($this->data['preco'], $error)){
            $this->set('success', 'Salvo com sucesso');
            //$this->msg = "Salvo com sucesso";
            $this->edit($this->data['dataFim'], $this->data['evento_id']);
        } else{
            $this->set('success', $error[0]['msg']);
            //$this->msg = $error[0]['msg'];
            $this->edit($this->data['dataFim'], $this->data['evento_id'], $dadosSalvo);
        }
        
        
    }
    
    function excluir($data, $evento_id) {
        $data =  implode('-',array_reverse(explode('/', $data)));
        $model = new Precoevento();
        if ($model->delete(array('dataFim =' => $data, 
            'evento_id = ' => $evento_id))){
            $this->set('success', "Excluído o preço para a data {$data}");
        } else {
            $this->set('success', "Não foi possível excluir.");
        }
            
        
        $this->autoLayout = FALSE;
        $this->autoRender = FALSE; 
    }
}

?>
